package algorithmTopics.logicAnalysis;

import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Scanner;
import java.util.stream.Collectors;

/**
 * @author 86155
 *
 *
 * 题目描述：【数字图色】疫情过后，希望小学终于又重新开学了，三年二班开学第一天的任务是将后面的黑板报重新制作。
 * 黑板上已经写了N个正整数，同学们需要给这每个数分别上一种颜色。为了让黑板报既美观又有学习意义，
 * 老师要求同种颜色的所有数都可以被这种颜色中最小的那个数整除。现在请你帮帮小朋友们，算算至少需要多少种颜色才能给这N个数进行上色。
 * 输入描述:
 * 第一行有一个正整数N，其中1<=N<=100。
 * 第二行有个N个int型整数(保证输入数据在[1,100]范围内)，表示黑板上各个正整数的值。
 * 输出描述:
 * 输出只有一个整数，为最少需要的颜色种数。
 * 示例1:
 * 输入
 * 3
 * 2 4 6
 * 输出
 * 1
 */
public class DigitalColouring {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();
        Scanner sc = new Scanner(System.in);
        List<Integer> nums = Arrays.stream(sc.nextLine().split(" ")).map(
                n -> Integer.parseInt(n)
        ).collect(Collectors.toList());
        /*System.out.println(num);
        System.out.println(nums);*/
        // 先排序，每两进行比较判断，如果有除尽，则删除数组中的那个，如果没有则指针向后移动
        // 判断哪一个大，进行除法
        nums = nums.stream().sorted().collect(Collectors.toList());//默认从小到大
        for (int i = 0; i < nums.size(); i++) {
            for (int j = i +1; j < nums.size() ;) {
                if (nums.get(j) % nums.get(i) == 0) {
                    nums.remove(j);
                    num--;
                } else {
                    j++;
                }
            }
        }
        System.out.println(num);
    }


}
